perm filename PURGE.REG[UP,DOC]8 blob
sn#591833 filedate 1981-06-02 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Purger Documentation
C00013 ENDMK
C⊗;
Purger Documentation
R. E. Gorin, June 7, 1972 (updated from time to time since then)
The purger program is used to enforce the cost recovery policies of
CSD Computer Facilities as they pertain to the SAIL system.
If you need a permantly larger disk quota, MAIL a message to Susan
Hill (SH or CSD.HILL at SCORE) explaining how large a quota you want and
who'll pay for it.
If you need to be temporarily spared from the purger because some
critical files are temporarily pushing you over your quota, MAIL a note to
PURGER explaining why you should be spared and for how long you expect to
be over your quota; the purger will consider your request. It may be that
temporary increases in the amount of disk space that you consume will be
reflected as increased charges for your computer account.
The purger counts the size of each user's files. This also
includes files on [2,2] that belong to the user, such as mail and
plan files. If a user is known to the system management then there
will be a disk quota associated with that user. Unknown users have a
disk quota of zero.
If a user is over his allocation then the purger will select
files to delete. To find out if you are over your allocation, use
the monitor command DSKSIZ. For documentation on the DSKSIZ program,
type the monitor command HELP DSKSIZ (or READ DSKSIZ from a display).
A user's disk quota is expressed in "allocation units" (A.U.)
each one of which corresponds to 1000 (decimal) words. (An A.U.
should not be confused with the term "K" which typically means 1024
(decimal) throughout the system.)
An authorized user who is over his quota can specify the
purge order for his files. This specification is accomplished by a
line in the file OPTION.TXT on any of the user's areas. The line
that the purger reads is called the "purge line." Only one purge line
is allowed for each user. The purger will read each of the user's
OPTION.TXT files (since there may be one for each of his disk areas)
until it finds one with a purge line. (Note that if two option files
have purge lines only one of these will be seen. The order in which
option files are read is undefined.)
The "purge line" has the following format. In this description
curly brackets "{" and "}" denote optional items. Pointy brackets "<"
and ">" denote syntactic quantities which are defined below. The
asterisk that appears below is the Kleene star.
<Purge Line> → PURGE: <term>{,<term>}*;
<term> → {<purge order>,}{<proj>}<file spec>
<file spec> → <name>{.<name>}{<proj>}
<proj> → [<name>]
<purge order> → #<number>
<number> → 'string of decimal digits'
<name> → 'string of alpha-numeric characters' |
↓'string of sixbit characters'↓ |
*
strings above that are enclosed in single quotes are meant to be
informal definitions of the data required.
Semantics applying to the purge line.
Each of a user's files is assigned a number, the purge order,
that determines the order of file deletion. The purge line defines
the purge order of every one of a user's files.
Every <term> in the purge line has a purge order associated
with it. A term that does not explicitly specify a <purge order> will
have a purge order that is one greater than the term to its left.
The first term on the line (the leftmost) will have purge order = 1,
unless that is over-ridden by an explicit purge order. If a <purge
order> term is seen then that purge order will be associated with the
next term. Subsequent terms will be given consecutive purge orders
unless reset by another <purge order>.
If [<proj>] appears at the front of a term, then that term
and all subsequent terms will apply to that project area until reset
by another such term.
The terms are then sorted in order of their "degree of
specification." The "degree of specification" is defined as follows:
Term degree of specification
nnnnnn.eee[ppp] 1 most specific
nnnnnn.* [ppp] 2
* .eee[ppp] 3
* .* [ppp] 4
nnnnnn.eee[*] 5
nnnnnn.* [*] 6
* .eee[*] 7
* .* [*] 8 least specific
The most specific terms are processed first. Any file
matched by a term, and not matched by a more specific term, is given
that term's purge order. When all terms are exhausted, any files
that have not been matched are given a purge order that is greater
than any purge order used thus far.
Files are deleted in increasing purge order until the user is
under allocation. The purger will not delete any files on [2,2]
belonging to the user even though it counts them against the user's
allocation. If the last file deleted is large, the user may wind up
way under allocation. This is not a malfunction in the purger, but
rather in the user.
A purge may create a DART P-dump of all deleted files. If
this is the case, a file that is a candidate for purging need not
have ever been dumped before. Otherwise, no files belonging to an
authorized user will be deleted unless they have been P-dumped or are
marked dump never. EXCEPT RPG and TMP files are deleted regardless
of their dump status.
If no purge line is found in any option file then the
following default line will be used:
PURGE:*.TMP,*.TEM,*.RPG,*.LST,*.REL,*.BIN,*.VRN,*.DMP,*.LAP,*.XGP,*.PRE;
NOTE: If the purge line in an OPTION.TXT file does not
completely specify the purge order of ALL the
user's files, then the remaining files will all be
given the SAME purge order. The purger will NOT
automatically apply the default purge order to
the remaining files. It is up to the user to have
a complete purge line. The default purge order
applies only when there is NO purge line given in
an OPTION.TXT file. You may want to copy the
default purge order above into some part of your
purge line in OPTION.TXT.
The OPTION.TXT file may be in E or SOS format or may be bare
text.
Example:
PURGE: FOO.*,GARPLY.REL[S],*.REL,*.RPG,*.TMP,*.*,FOO.BAZ,GARPLY.*,*.*[s];
This example is fairly complex.
Term Purge order Specification
FOO.* 1 6
GARPLY.REL[S] 2 1
*.REL 3 7
*.RPG 4 7
*.TMP 5 7
*.* 6 8
FOO.BAZ 7 5
GARPLY.* 8 6
*.*[s] 9 4
Files will be purged in the following order:
1. FOO.*[*], except see 7 and 9 below.
2. Garply.rel[s]
3,4,5 *.rel,*.rpg,*.tmp (except see 8 below)
6 any other files, except see below
7 Foo.baz[*]
8 Garply.*[*]
9 *.*[s]
foo.* will not delete foo.baz[*], or foo.*[s]
Garply.rel[s] will be not be given order 8 or 9 because
it is more specific.
rel, rpg and tmp files will not be deleted from [s] until 9.
Any files not described by 7,8,9 will be deleted by 6.